{"componentChunkName":"component---src-templates-blog-post-js","path":"/synchroniser-automatiquement-navigateur/","result":{"data":{"site":{"siteMetadata":{"title":"Rachl.dev"}},"markdownRemark":{"id":"d13ddd0f-bcb6-5c4e-a152-d8ffedc6688f","excerpt":"Que vous soyez débutant, de la vieille école ou simplement sur un petit projet, vous n’avez pas forcément mis en place des solutions qui synchronisent…","html":"<p>Que vous soyez débutant, de la vieille école ou simplement sur un petit projet, vous n’avez pas forcément mis en place des solutions qui synchronisent automatiquement votre navigateur à chaque sauvegarde. Il existe pourtant un module <abbr title=\"Node Package Manager\">npm</abbr> qui peut se charger de cela à l’aide d’une seule ligne de commande : <a href=\"https://www.Browsersync.io/\">Browsersync</a>.</p>\n<h2>Qu’est-ce que npm ?</h2>\n<p><em>Si npm est déjà installé sur votre ordinateur, vous pouvez passer directement à la partie suivante</em></p>\n<p>npm, ou Node Package Manager est le gestionnaire de paquet officiel de node.js, la plateforme qui nous permet aujourd’hui d’exécuter du javascript côté serveur. npm permet de gérer très simplement les dépendances d’un site web et d’automatiser certaines tâches récurrentes, dont cette fameuse synchronisation de navigateur.</p>\n<p>Pour utiliser Browsersync vous devez donc tout d’abord <strong>installer <a href=\"https://nodejs.org/fr/\">Node.js</a></strong> (disponible sur Windows, Mac et Linux), qui embarque automatiquement npm.</p>\n<h2>Installer Browsersync</h2>\n<p>Pour l’installation de Browsersync, deux options s’offrent à vous : l’installer globalement afin de pouvoir le lancer sur tous vos projets, ou localement pour un usage ponctuel.</p>\n<p>J’ai personnellement choisi l’installation globale, pour simplifier le processus et éviter d’avoir à le télécharger à chaque fois (parce que la planète).</p>\n<p>Pour ce faire, il vous faut donc <strong>ouvrir un terminal</strong> (ex : l’Invite de commandes sur windows) et exécuter la ligne de commande ci-dessous :</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g browser-sync</code></pre></div>\n<h2>Utiliser Browsersync sur un projet</h2>\n<p>Une des forces de Browsersync est qu’il peut être utilisé sur un site statique ou dynamique avec des changements mineurs sur la commande utilisée. Dans les deux cas, il vous suffit d’ouvrir un terminal dans le répertoire du projet que vous souhaitez surveiller et d’exécuter la commande appropriée :</p>\n<h3>Sur un site statique</h3>\n<p>Pour un site <strong>sans</strong> serveur dynamique (basé sur des fichiers .html), utilisez :</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">browser-sync start --server --files<span class=\"token operator\">=</span><span class=\"token string\">\"**/*\"</span></code></pre></div>\n<p>Browsersync lancera alors un petit serveur et surveillera les modifications de tous vos fichiers. Il est possible de changer certaines options, notamment la partie <code class=\"language-text\">--files=&quot;**/*&quot;</code>. Par exemple, si vous souhaitez surveiller uniquement le css, utilisez <code class=\"language-text\">--files=&quot;css/*.css&quot;</code>.</p>\n<p><a href=\"https://www.browsersync.io/docs/command-line\">Voir toutes les options possibles dans la documentation</a></p>\n<h3>Sur un site dynamique</h3>\n<p>Pour un site qui tourne déjà sur un serveur dynamique local (php et autres), utilisez :</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">browser-sync start --proxy <span class=\"token string\">\"[URL-LOCALE-DU-PROJET]\"</span> --files<span class=\"token operator\">=</span><span class=\"token string\">\"**/*\"</span></code></pre></div>\n<p>Browsersync entrera donc en mode proxy et se contentera de faire l’intermédiaire pour surveiller vos fichiers sans lancer de nouveau serveur. Comme pour les sites statiques, cette commande peut être personnalisée : <a href=\"https://www.browsersync.io/docs/command-line\">Voir toutes les options possibles</a>.</p>\n<h2>Récapitulatif</h2>\n<p>Pour résumer, voici les étapes nécessaires à la mise en place d’une synchronisation de navigateur avec Browsersync :</p>\n<ol>\n<li>installer <a href=\"https://nodejs.org/fr/\">Node.js</a> (si ce n’est pas déjà fait)</li>\n<li>Ouvrir un terminal.</li>\n<li>Installer Browsersync en exécutant la commande <code class=\"language-text\">npm install -g browser-sync</code></li>\n<li>\n<p>Naviguer dans le répertoire de votre projet et lancer Browsersync avec l’une des commandes suivantes :</p>\n<ul>\n<li>Sur un site statique : <code class=\"language-text\">browser-sync start --server --files=&quot;**/*&quot;</code></li>\n<li>Sur un site dynamique : <code class=\"language-text\">browser-sync start --proxy &quot;[URL-LOCALE-DU-PROJET]&quot; --files=&quot;**/*&quot;</code></li>\n</ul>\n</li>\n</ol>\n<p>Une fois la synchronisation lancée, vous n’avez plus à vous soucier de recharger votre navigateur, il s’en chargera automatiquement à chaque fois que vous sauvegardez !</p>\n<p>Il existe d’autres façons d’utiliser Browsersync, notamment avec Gulp ou Grunt, mais cette solution est à mon avis la plus simple et la plus rapide à mettre en place lorsque l’on ne cherche pas à mettre en place un workflow complexe.</p>\n<p>Pour plus d’informations sur les autres possibilités d’installation et les options disponibles, <a href=\"https://www.Browsersync.io/docs\">visitez la documentation</a></p>","frontmatter":{"title":"Comment synchroniser automatiquement votre navigateur avec Browsersync","date":"04 janv. 2020","description":"Augmentez votre productivité en développement web grâce à Browsersync, qui mettra automatiquement à jour votre navigateur à chaque sauvegarde","tags":["workflow","ligne de commande"],"serie":null}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/synchroniser-automatiquement-navigateur/","previous":null,"next":{"fields":{"slug":"/smooth-scrolling-css/"},"frontmatter":{"title":"Smooth scrolling uniquement en CSS","tags":["css"]}}}}}